//
//  HMTabBarContentView.h
//  01-HMTabBarContentView控件开发
//
//  Created by teacher on 2017/7/23.
//  Copyright © 2017年 teacher. All rights reserved.
//

#import <UIKit/UIKit.h>

/*
 依赖库
 1. 'Masonry', '~> 1.0.2'
 */


@class HMTabBarContentView;

/**
 数据提供
 */
@protocol HMTabBarContentViewDataSource <NSObject>

@required
/**
 返回选项的数量

 @param tabBarContentView 当前控件
 @return 数量
 */
- (NSInteger)numberOfItemsInTabBarContentView:(HMTabBarContentView *)tabBarContentView;


/**
 设置选项的标题

 @param tabBarContentView 当前控件
 @param index 选项下标
 @return 标题
 */
- (NSString *)tabBarContentView:(HMTabBarContentView *)tabBarContentView titleForItemAtIndex:(NSInteger)index;


/**
 设置内容视图

 @param tabBarContentView 当前控件
 @param index 选项下标
 @return 内容视图
 */
- (UIView *)tabBarContentView:(HMTabBarContentView *)tabBarContentView contentForItemAtIndex:(NSInteger)index;

@end


/**
 负责数据的行为和显示样式
 */
@protocol HMTabBarContentViewDelegate <NSObject>


/**
 返回 tabBar 的高度

 @param tabBarContentView 当前控件
 @return 高度
 */
- (CGFloat)tabBarHeightInTabBarContentView:(HMTabBarContentView *)tabBarContentView;


/**
 返回高亮选项的背景视图

 @param tabBarContentView 当前控件
 @return 背景视图
 */
- (UIView *)selectedTabBarItemBackgroundInTabBarContentView:(HMTabBarContentView *)tabBarContentView;


/**
 当选项被选中的时候回调

 @param tabBarContentView 当前控件
 @param index 选中索引
 */
- (void)tabBarContentView:(HMTabBarContentView *)tabBarContentView didSelectContentAtIndex:(NSInteger)index;

/**
 定制选中的颜色

 @param tabBarContentView 当前控件
 @return 高亮颜色
 */
- (UIColor *)selectedTabBarItemTitleColorInTabBarContentView:(HMTabBarContentView *)tabBarContentView;

@end


@interface HMTabBarContentView : UIView

// 数据提供者
@property (assign, nonatomic)   id<HMTabBarContentViewDataSource>   dataSource;

// 样式行为提供者
@property (assign, nonatomic)   id<HMTabBarContentViewDelegate>     delegate;


/**
 刷新界面
 */
- (void)reloadData;
@end
